﻿/**
 * GoText Palm: A program that allows to send text messages over the internet.
 *  Copyright (C) 2008 Nicola 'Gawaine' Racco
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using GoTextPalm.Core.Localization;

namespace GoTextPalm.Gui
{
    public partial class CompressMessage : LocalizedForm
    {
        public String Message
        {
            get { return txtMessage.Text; }
            set
            {
                txtMessage.Text = value;
                if (original == null)
                    original = new StringBuilder(value);
                lblTxtCount.Text = txtMessage.TextLength + "/" + messageCount;
            }
        }

        private int messageCount;
        public Int32 MessageCount
        {
            get { return messageCount; }
            set
            {
                messageCount = value;
                lblTxtCount.Text = txtMessage.TextLength + "/" + messageCount;
            }
        }

        private StringBuilder original;

        public CompressMessage()
        {
            InitializeComponent();
            header.Text = "New Message";
            AddMenusToDictionary();
            UpdateResources();
        }

        protected override void AddMenusToDictionary()
        {
            AddMenuToDictionary(cancelMnu, "mnuCancel");
        }

        private void compressTrack_ValueChanged(object sender, EventArgs e)
        {
            if (compressTrack.Value == 0)
                Message = original.ToString();
            else
                Message = GoTextPalm.Core.Localization.Reducer.Reducer.Instance.Reduce(compressTrack.Value, original.ToString());
        }

        private void cancelMnu_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            Close();
        }

        private void CompressMessage_Load(object sender, EventArgs e)
        {
            if (customInputPanel.SipSupported)
            {
                customInputPanel.Screen = screen;
                customInputPanel.Refresh();
            }
        }
    }
}